package com.houger.ddd.redpacket.facade;

import com.houger.ddd.redpacket.facade.dto.GrabRedPacketDto;
import com.houger.ddd.redpacket.facade.dto.RedPacketDto;
import com.houger.ddd.redpacket.domain.GrabRedPacketDomain;
import com.houger.ddd.redpacket.domain.RedPacketDomain;

import java.util.List;

/**
 * @author Houger.
 * @date 2024年04月18日 15:52.
 */
public interface RedPacketFacade {
    void saveRedPacketToCache(RedPacketDomain domain);

    void saveRedPacketToDb(RedPacketDomain domain);

    Integer grab(GrabRedPacketDomain domain);

    Integer sendMq(GrabRedPacketDomain domain);

    List<GrabRedPacketDto> getGrabRedPacketList(String redPacketId);

    RedPacketDto getRedPacketInfo(String redPacketId);

    void saveGrabToDb(GrabRedPacketDomain domain);

    void updateResidual(String redPacketId,String money);
}
